#pragma once

#ifndef _Jet_h_
#define _Jet_h_

#include "Flying.h"
#include "Particles/ParticleEmitter.h"

#include "../Framework/Sound.h"

#include <vector>

namespace MyGame {

using namespace Framework;
using namespace std;

class Jet abstract :
            public Flying {
public:
    Jet(Game* game);
    virtual ~Jet(void);
    int GetHealth() const;
    void SetHealth(int val);
    void InflictDamage(int hp);
    virtual void ShootCannon();
    virtual void ShootMissile();
    virtual void Draw(FLOAT timeDelta);
    virtual void Initialize();
    virtual void LoadContent();
    virtual void Update(FLOAT timeDelta);
    void YawPitchRollTo(D3DXVECTOR3 yawPitchRoll);
protected:
    FLOAT missileSpeed;
    FLOAT missileTurnSpeed;
private:
    FLOAT cannonDelay;
    Sound* cannonSound;
    FLOAT cannonTimer;
    Sound* explosionSound;
    Sound* flightSound;
    int health;
    ParticleEmitter* particleEmitter;
    FLOAT speed;
    D3DXVECTOR3 targetYawPitchRoll;
    FLOAT yawPitchRollSpeed;
};

}

#endif
